1. Technical Field
The present invention relates generally to computer system and more specifically to Maximum Transmission Units (MTUs) of computer systems. Still more particularly, the present invention relates generally to methods for changing the size of an MTU of a computer system.
2. Description of the Related Art
Data communication across computer networks, such as local area networks (LANS) is primarily supported via an Ethernet interface at each network node to which the networked computer system is connected. In conventional Ethernet-based network systems, the network communication (transfer and receipt of network data packets) is enabled by one or more maximum transmission units (MTUs) at the client-Ethernet interface.
MTUs are often of a standard/default size supported throughout the network to handle standard size data transmissions. Oftentimes, however, particularly as network data transmission evolves to include more and more multimedia content of varying size, the size of the MTU have to be adjusted to handle the different sizes of data transmissions. One primary reason for this size adjustment is the allocation of the receive buffer, whose size is based on the MTU size.
With conventional computer systems, when the MTU size has to be changed, most operating systems (OSes) require the Ethernet interface to be brought down before the size changing operation is undertaken. The driver places the adapter hardware in an idle state and resets the adapter before the driver changes the receive buffer size to prevent the adapter from DMAing any new data to the receive buffer during the size changing operation.
FIG. 1 illustrates the process of changing the MTU size according to conventional methods. As shown, the process begins at block 102 at which the OS first brings down the Ethernet interface (using the command “ifconfig down” for example). When the command is issued, the device driver puts the adapter in an idle state by closing the interface and resetting the adapter, as provided at block 104. When this occurs, the link between the adapter and link partner (e.g., the switch port/other Ethernet adapter across the network) is lost. Following, the OS changes the interface's MTU size (using the command “ifconfig XXXX up MTU 9000”, for example), as indicated at block 106. Then, the OS re-initializes the adapter as depicted at block 108. The adapter then re-establishes the link with the link partner as provided at block 110.
With conventional systems, the first step (102) typically brings down all/any applications using the interface, as well as the interface. Thus, any data pending on the application and data on the way from network (e.g., from a link partner) will be either dropped or lost. Because of this loss of data during the shut down of the interface with conventional methods, changing the MTU size is very cumbersome in a running environment.
Recent developments with MTU size changing operations include an enhancement for some OSes, which involves combining two commands into a single command (e.g., “ifconfig XXXX mtu 9000”). However, this “single” command is actually two operations being issued concurrently (and being completed in an overlapping time frame). The execution of this “single command” still requires the OS bring down the interface/adapter before the size change and then bring up the interface/adapter with a different MTU size after the change is completed. This method may, however, enable the application to remain connected after the MTU size changes. However, while this method offers some improvement over previous, conventional methods, there still remains the likelihood of potential packet loss during the time the interface/adapter is down.